package cn.xiaohello.TCP;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服务器端示例，监听端口，接收客户机发送的数据，并返回。
 * 
 * @author XIAO
 *
 */
public class SocketTestServer {
	public static void main(String[] args) {
		InputStream is = null;
		OutputStream os = null;
		ServerSocket serverSocket = null;
		Socket socket = null;
		try {
			// 监听端口
			int port = 80;
			// 建立服务器本机监听链接
			serverSocket = new ServerSocket(port);
			System.out.println("服务器已启动，等待接收数据。。。");
			// 获得链接，准备接收数据
			socket = serverSocket.accept();
			// 创建输入流，准备提取客户机发送（输入）的数据
			is = socket.getInputStream();
			byte[] b = new byte[1024];
			int n = is.read(b);
			// 输出接收到的客户机发送的数据
			System.out.println("客户机发来的信息：" + new String(b, 0, n));
			// 向客户机返回响应数据
			os = socket.getOutputStream();
			os.write("hello， i am server".getBytes());
		} catch (IOException e) {
			// do nothing
		} finally {
			// 关闭输入，输出流
			try {
				is.close();
				os.close();
				socket.close();
				serverSocket.close();
			} catch (IOException e) {
				// do nothing
			}
		}
	}
}
